#include "siirtolista.h"


//-----------------------------------------------------------------------------
/// Lisaa siirron listan loppuun.
///
/// \param s lisattava siirto
///
/// \todo MILESTONE #01
//-----------------------------------------------------------------------------
void Siirtolista::lisaaSiirto(const Siirto &s)
{
	_lista.push_back(s);
}


//-----------------------------------------------------------------------------
/// Palauttaa osoittimen listan seuraavan siirron.
///
/// \return seuraava siirto (0 jos listassa ei enaa siirtoja)
///
/// \todo MILESTONE #01
//-----------------------------------------------------------------------------
Siirto *Siirtolista::annaSeuraava()
{
	if(_current <= _lista.size()) {
		return &_lista[_current++];
	}
	else return 0;
}


//-----------------------------------------------------------------------------
/// Asettaa listan siten, etta seuraava annaSeuraava() palauttaa 1. siirron.
///
/// \todo MILESTONE #01
//-----------------------------------------------------------------------------
void Siirtolista::alkuun()
{
	_current = 0;
}


//-----------------------------------------------------------------------------
/// Tyhjentaa siirtolistan.
///
/// \todo MILESTONE #01
//-----------------------------------------------------------------------------
void Siirtolista::tyhjaa()
{
	_lista.clear();
	_current = 0;
}


//-----------------------------------------------------------------------------
/// Palauttaa siirtolistan siirtojen lukumaaran.
///
/// \return siirtojen lkm
///
/// \todo MILESTONE #01
//-----------------------------------------------------------------------------
int Siirtolista::lkm() const
{
	return _lista.size();
}
